﻿#pragma once

#include "RenderPointLightData.h"
#include "RenderSpotLightData.h"
#include "RenderDirectionalLightData.h"
#include "RenderMeshInstanceData.h"

class CPreRenderScene;
struct SPreRenderContext;

class CRenderScene
{
public:
    TVector<SRenderPointLightData> PointLights;
    TVector<SRenderSpotLightData> SpotLights;
    TVector<SRenderDirectionalLightData> DirectionalLights;
    TVector<SRenderMeshInstanceData> MeshInstances;

    void AddAmbientLight(const SColor& InAmbientLight, float InIntensity);
    SColor AmbientLights = SColor(0, 0, 0, 0);

    void GeneratePreRenderScene(SPreRenderContext& InPreRenderContext,CPreRenderScene* OutData);

};